1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.purple.buddyicon; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 import derelict.purple.account; 34 import derelict.purple.blist; 35 import derelict.purple.imgstore; 36 import derelict.purple.prpl; 37 import core.stdc.time; 38 39 extern (C): 40 41 alias _PurpleBuddyIcon PurpleBuddyIcon; 42 43 struct _PurpleBuddyIcon; 44 45 46 version(Derelict_Link_Static) 47 { 48 extern( C ) nothrow 49 { 50 PurpleBuddyIcon* purple_buddy_icon_new(PurpleAccount* account, const(char)* username, void* icon_data, size_t icon_len, const(char)* checksum); 51 PurpleBuddyIcon* purple_buddy_icon_ref(PurpleBuddyIcon* icon); 52 PurpleBuddyIcon* purple_buddy_icon_unref(PurpleBuddyIcon* icon); 53 void purple_buddy_icon_update(PurpleBuddyIcon* icon); 54 void purple_buddy_icon_set_data(PurpleBuddyIcon* icon, guchar* data, size_t len, const(char)* checksum); 55 PurpleAccount* purple_buddy_icon_get_account(const(PurpleBuddyIcon)* icon); 56 const(char)* purple_buddy_icon_get_username(const(PurpleBuddyIcon)* icon); 57 const(char)* purple_buddy_icon_get_checksum(const(PurpleBuddyIcon)* icon); 58 gconstpointer purple_buddy_icon_get_data(const(PurpleBuddyIcon)* icon, size_t* len); 59 const(char)* purple_buddy_icon_get_extension(const(PurpleBuddyIcon)* icon); 60 char* purple_buddy_icon_get_full_path(PurpleBuddyIcon* icon); 61 void purple_buddy_icons_set_for_user(PurpleAccount* account, const(char)* username, void* icon_data, size_t icon_len, const(char)* checksum); 62 const(char)* purple_buddy_icons_get_checksum_for_user(PurpleBuddy* buddy); 63 PurpleBuddyIcon* purple_buddy_icons_find(PurpleAccount* account, const(char)* username); 64 PurpleStoredImage* purple_buddy_icons_find_account_icon(PurpleAccount* account); 65 PurpleStoredImage* purple_buddy_icons_set_account_icon(PurpleAccount* account, guchar* icon_data, size_t icon_len); 66 time_t purple_buddy_icons_get_account_icon_timestamp(PurpleAccount* account); 67 gboolean purple_buddy_icons_node_has_custom_icon(PurpleBlistNode* node); 68 PurpleStoredImage* purple_buddy_icons_node_find_custom_icon(PurpleBlistNode* node); 69 PurpleStoredImage* purple_buddy_icons_node_set_custom_icon(PurpleBlistNode* node, guchar* icon_data, size_t icon_len); 70 PurpleStoredImage* purple_buddy_icons_node_set_custom_icon_from_file(PurpleBlistNode* node, const(gchar)* filename); 71 gboolean purple_buddy_icons_has_custom_icon(PurpleContact* contact); 72 PurpleStoredImage* purple_buddy_icons_find_custom_icon(PurpleContact* contact); 73 PurpleStoredImage* purple_buddy_icons_set_custom_icon(PurpleContact* contact, guchar* icon_data, size_t icon_len); 74 void purple_buddy_icons_set_caching(gboolean caching); 75 gboolean purple_buddy_icons_is_caching(); 76 void purple_buddy_icons_set_cache_dir(const(char)* cache_dir); 77 const(char)* purple_buddy_icons_get_cache_dir(); 78 void* purple_buddy_icons_get_handle(); 79 void purple_buddy_icons_init(); 80 void purple_buddy_icons_uninit(); 81 void purple_buddy_icon_get_scale_size(PurpleBuddyIconSpec* spec, int* width, int* height); 82 } 83 } 84 else 85 { 86 extern( C ) nothrow 87 { 88 alias da_purple_buddy_icon_new = PurpleBuddyIcon* function(PurpleAccount* account, const(char)* username, void* icon_data, size_t icon_len, const(char)* checksum); 89 alias da_purple_buddy_icon_ref = PurpleBuddyIcon* function(PurpleBuddyIcon* icon); 90 alias da_purple_buddy_icon_unref = PurpleBuddyIcon* function(PurpleBuddyIcon* icon); 91 alias da_purple_buddy_icon_update = void function(PurpleBuddyIcon* icon); 92 alias da_purple_buddy_icon_set_data = void function(PurpleBuddyIcon* icon, guchar* data, size_t len, const(char)* checksum); 93 alias da_purple_buddy_icon_get_account = PurpleAccount* function(const(PurpleBuddyIcon)* icon); 94 alias da_purple_buddy_icon_get_username = const(char)* function(const(PurpleBuddyIcon)* icon); 95 alias da_purple_buddy_icon_get_checksum = const(char)* function(const(PurpleBuddyIcon)* icon); 96 alias da_purple_buddy_icon_get_data = gconstpointer function(const(PurpleBuddyIcon)* icon, size_t* len); 97 alias da_purple_buddy_icon_get_extension = const(char)* function(const(PurpleBuddyIcon)* icon); 98 alias da_purple_buddy_icon_get_full_path = char* function(PurpleBuddyIcon* icon); 99 alias da_purple_buddy_icons_set_for_user = void function(PurpleAccount* account, const(char)* username, void* icon_data, size_t icon_len, const(char)* checksum); 100 alias da_purple_buddy_icons_get_checksum_for_user = const(char)* function(PurpleBuddy* buddy); 101 alias da_purple_buddy_icons_find = PurpleBuddyIcon* function(PurpleAccount* account, const(char)* username); 102 alias da_purple_buddy_icons_find_account_icon = PurpleStoredImage* function(PurpleAccount* account); 103 alias da_purple_buddy_icons_set_account_icon = PurpleStoredImage* function(PurpleAccount* account, guchar* icon_data, size_t icon_len); 104 alias da_purple_buddy_icons_get_account_icon_timestamp = time_t function(PurpleAccount* account); 105 alias da_purple_buddy_icons_node_has_custom_icon = gboolean function(PurpleBlistNode* node); 106 alias da_purple_buddy_icons_node_find_custom_icon = PurpleStoredImage* function(PurpleBlistNode* node); 107 alias da_purple_buddy_icons_node_set_custom_icon = PurpleStoredImage* function(PurpleBlistNode* node, guchar* icon_data, size_t icon_len); 108 alias da_purple_buddy_icons_node_set_custom_icon_from_file = PurpleStoredImage* function(PurpleBlistNode* node, const(gchar)* filename); 109 alias da_purple_buddy_icons_has_custom_icon = gboolean function(PurpleContact* contact); 110 alias da_purple_buddy_icons_find_custom_icon = PurpleStoredImage* function(PurpleContact* contact); 111 alias da_purple_buddy_icons_set_custom_icon = PurpleStoredImage* function(PurpleContact* contact, guchar* icon_data, size_t icon_len); 112 alias da_purple_buddy_icons_set_caching = void function(gboolean caching); 113 alias da_purple_buddy_icons_is_caching = gboolean function(); 114 alias da_purple_buddy_icons_set_cache_dir = void function(const(char)* cache_dir); 115 alias da_purple_buddy_icons_get_cache_dir = const(char)* function(); 116 alias da_purple_buddy_icons_get_handle = void* function(); 117 alias da_purple_buddy_icons_init = void function(); 118 alias da_purple_buddy_icons_uninit = void function(); 119 alias da_purple_buddy_icon_get_scale_size = void function(PurpleBuddyIconSpec* spec, int* width, int* height); 120 } 121 122 __gshared 123 { 124 da_purple_buddy_icon_new purple_buddy_icon_new; 125 da_purple_buddy_icon_ref purple_buddy_icon_ref; 126 da_purple_buddy_icon_unref purple_buddy_icon_unref; 127 da_purple_buddy_icon_update purple_buddy_icon_update; 128 da_purple_buddy_icon_set_data purple_buddy_icon_set_data; 129 da_purple_buddy_icon_get_account purple_buddy_icon_get_account; 130 da_purple_buddy_icon_get_username purple_buddy_icon_get_username; 131 da_purple_buddy_icon_get_checksum purple_buddy_icon_get_checksum; 132 da_purple_buddy_icon_get_data purple_buddy_icon_get_data; 133 da_purple_buddy_icon_get_extension purple_buddy_icon_get_extension; 134 da_purple_buddy_icon_get_full_path purple_buddy_icon_get_full_path; 135 da_purple_buddy_icons_set_for_user purple_buddy_icons_set_for_user; 136 da_purple_buddy_icons_get_checksum_for_user purple_buddy_icons_get_checksum_for_user; 137 da_purple_buddy_icons_find purple_buddy_icons_find; 138 da_purple_buddy_icons_find_account_icon purple_buddy_icons_find_account_icon; 139 da_purple_buddy_icons_set_account_icon purple_buddy_icons_set_account_icon; 140 da_purple_buddy_icons_get_account_icon_timestamp purple_buddy_icons_get_account_icon_timestamp; 141 da_purple_buddy_icons_node_has_custom_icon purple_buddy_icons_node_has_custom_icon; 142 da_purple_buddy_icons_node_find_custom_icon purple_buddy_icons_node_find_custom_icon; 143 da_purple_buddy_icons_node_set_custom_icon purple_buddy_icons_node_set_custom_icon; 144 da_purple_buddy_icons_node_set_custom_icon_from_file purple_buddy_icons_node_set_custom_icon_from_file; 145 da_purple_buddy_icons_has_custom_icon purple_buddy_icons_has_custom_icon; 146 da_purple_buddy_icons_find_custom_icon purple_buddy_icons_find_custom_icon; 147 da_purple_buddy_icons_set_custom_icon purple_buddy_icons_set_custom_icon; 148 da_purple_buddy_icons_set_caching purple_buddy_icons_set_caching; 149 da_purple_buddy_icons_is_caching purple_buddy_icons_is_caching; 150 da_purple_buddy_icons_set_cache_dir purple_buddy_icons_set_cache_dir; 151 da_purple_buddy_icons_get_cache_dir purple_buddy_icons_get_cache_dir; 152 da_purple_buddy_icons_get_handle purple_buddy_icons_get_handle; 153 da_purple_buddy_icons_init purple_buddy_icons_init; 154 da_purple_buddy_icons_uninit purple_buddy_icons_uninit; 155 da_purple_buddy_icon_get_scale_size purple_buddy_icon_get_scale_size; 156 } 157 }